package com.atguigu.important;

import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Properties;

/**
 * @program: IDEAcode
 * @description:
 * @author: Mr.zjx
 * create: 2021-07-27-00-06
 **/
public class Demo {
    @Test
    //Io流读取配置文件
    public void personTest() throws Exception{
        //使用类加载器输入流
        //重要：配置文件一定要放在src目录下，不然会空指针异常
        InputStream in = Demo.class.getClassLoader().getResourceAsStream("config.properties");
        Properties properties = new Properties();
        properties.load(in);
        in.close();
        //获取类名
        String className = properties.getProperty("className");
        //获取方法名
        String methodName = properties.getProperty("methodName");
        //获取class文件对象
        Class clazz = Class.forName(className);
        //反射创建对象
        Object obj = clazz.newInstance();
        //获取方法
        Method method = clazz.getMethod(methodName);
        method.invoke(obj);
    }
}
